--[[
    函数：lua2_del_design
    功能：删除模版
    参数：ARGV[1]:design_id，模版id，
    参数：ARGV[2]:type_large，一级分类，
    参数：ARGV[3]:type_middle，二级分类
    参数：ARGV[4]:type_small，三级分类
    参数：ARGV[5]:labels，标签ID字符串,以半角逗号分割，形如：'1,2,3'
    参数：ARGV[6]:price_type，费用类型，1免费, 2vip
    参数：ARGV[7]:keywords，关键字字符串,以半角逗号分割，形如：'蓝色,商务,名片'
    返回：0表示成功，1表示失败
--]]

-- ########################################################

-- 分类的前缀
local PREFIX_TYPE = "type_"
-- 标签的前缀
local PREFIX_LABEL = "label_"
-- VIP的key
local KEY_VIP = "vip"
-- 排序的key
local KEY_SORT = "sort"
-- keyword的前缀
local PREFIX_KEYWORD = "kwd_"
-- ID-模版缓存的前缀
local PREFIX_DESIGN = "d_"

-- PPT的ID的前缀
local PREFIX_PPT = "p"
-- key的连接符号
local PREFIX_S = "*"
-- 数组字符串的分割符号
local PREFIX_ARRAY_SPLIT = ","

-- ########################################################
-- 如果是PPT，其id前面需要加上前缀 PREFIX_PPT
local design_id = ARGV[1]
local type_large = tonumber(ARGV[2]) or 0
if(type_large==3)
then
    design_id = PREFIX_PPT..design_id
end

-- ########################################################
-- “一级分类－模版缓存”集合 D1
local key1 = PREFIX_TYPE..ARGV[2]
redis.call('srem',key1, design_id)

-- “二级分类－模版缓存”集合 D1
local key2 = PREFIX_TYPE..ARGV[3]
redis.call('srem',key2, design_id)

-- “三级分类－模版缓存”集合 D1
local key3 = PREFIX_TYPE..ARGV[4]
redis.call('srem',key3, design_id)



-- ########################################################
-- “标签－模版缓存”集合 D2
local labels = string.split(ARGV[5], PREFIX_ARRAY_SPLIT)
if(labels~=nil)
then
    local r_len = #labels
    if(r_len>0)
    then
        for i= 1, r_len do
            local key4 = PREFIX_LABEL..labels[i]
            redis.call('srem',key4, design_id)
        end
    end
end



-- ########################################################
-- “price－模版缓存”集合  D3
local price_type = tonumber(ARGV[6]) or 0
if(price_type==2)
then
    local key5 = KEY_VIP
    redis.call('srem',key5, design_id)
end

-- ########################################################
-- “关键字－模版缓存”集合 D4
local keywords = string.split(ARGV[7], PREFIX_ARRAY_SPLIT)
if(keywords~=nil)
then
    local k_len = #keywords
    if(k_len>0)
    then
        for i= 1, k_len do
            local key6 = PREFIX_KEYWORD..keywords[i]
            redis.call('srem',key6, design_id)
        end
    end
end


-- ########################################################
-- "id－模版缓存”hash表  D5
local key7 = PREFIX_DESIGN..design_id
redis.call('hdel',key7, 'search_result')

-- ########################################################
-- “模版－排序字段”有序集合  D6 ARGV[9]:sort，排序字段，越小越靠前
local key8 = KEY_SORT
redis.call('zrem',key8, design_id)


-- ########################################################
return 0